#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include "stage11.h"



 






void shakeScreen(SDL_Surface *ecran)
{
   
    /* On crée une surface temporaire et on y enregistre l'écran de jeu (screen) */
    SDL_Surface *temp = SDL_DisplayFormat(ecran);
    SDL_Rect dest;
    int i;

    /* Dans une boucle, on va "shaker" l'écran en le blittant 1 fois sur deux à x et y = 4 et autrement à (0,0) */
    for (i = 0 ; i < 30 ; i++)
    {
        /* Selon que la division de i par deux est entière ou non, on blitte aux coordonnées différentes (0,0) ou (4,4) */
        if (i%2 == 0)
        {
            dest.x = 4;
            dest.y = 4;
        }
        else
        {
            dest.x = 0;
            dest.y = 0;
        }

        /* On remplit l'écran de noir pour éviter les surimpressions */
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format,           0, 0, 0));
        /* On blitte aux nouvelles coordonnées */
        SDL_BlitSurface(temp, NULL, ecran, &dest);
        /* On affiche l'écran */
        SDL_Flip(ecran);
        /* On fait une pause de 16ms pour se limiter à 60fps (images/stories/seconde) */
        SDL_Delay(16);

    }

    /* On reblitte l'écran à sa place d'origine */
    dest.x = 0;
    dest.y = 0;
    SDL_BlitSurface(temp, NULL, ecran, &dest);

    /* Puis on supprime notre surface temporaire */
    SDL_FreeSurface(temp);

}

void text (SDL_Surface *ecran , char ch[50])
{ SDL_Surface *txt=NULL;
  TTF_Font *police = NULL;
  SDL_Color couleur = {0, 0, 0};
  SDL_Rect pos;
  pos.x=150;
  pos.y=150;

  TTF_Init();
  police = TTF_OpenFont("1.TTF",30);
  txt = TTF_RenderText_Solid(police,ch, couleur);
  SDL_BlitSurface(txt, NULL, ecran, &pos); 
  //SDL_Flip(ecran);
  TTF_CloseFont(police);   
  TTF_Quit();
}
void te(SDL_Surface* ecran)
        {
        SDL_Surface *txt=NULL;
             TTF_Font *police = NULL;
             SDL_Color couleur = {0, 0, 0};
             SDL_Rect pos;
            pos.x=150;
             pos.y=150;
            TTF_Init();
            police = TTF_OpenFont("1.TTF",30);
             txt = TTF_RenderText_Solid(police,ch, couleur);
             SDL_BlitSurface(txt, NULL, ecran, &pos); 

             TTF_CloseFont(police);   
             TTF_Quit();
            SDL_FreeSurface(txt);
        }









void apply_surface ( int x, int y, SDL_Surface* source, SDL_Surface* destination )
{
 
     SDL_Rect offset;
     offset.x = x;
     offset.y = y;
     SDL_BlitSurface( source, NULL, destination, &offset );
}


void clean(SDL_Surface* ecran,SDL_Surface* back,SDL_Surface* perso,SDL_Surface* voit,SDL_Surface* voit1,SDL_Surface* bus,SDL_Surface* tube,SDL_Surface* moto,SDL_Surface* bat,SDL_Surface* batj,SDL_Surface* batr, SDL_Surface* batt,SDL_Surface* bat1 ,SDL_Surface* source,SDL_Surface* destination)
{
SDL_FreeSurface(back);    
SDL_FreeSurface(ecran);
SDL_FreeSurface(perso);
SDL_FreeSurface(voit);
SDL_FreeSurface(voit1);
SDL_FreeSurface(bus);
SDL_FreeSurface(tube);
SDL_FreeSurface(moto);
SDL_FreeSurface(bat);
SDL_FreeSurface(batt);
SDL_FreeSurface(batr);
SDL_FreeSurface(batj);
SDL_FreeSurface(bat1);
SDL_FreeSurface(source);
SDL_FreeSurface(destination);

}